package org.example.warehouse.controller;

import org.example.core.utils.PageUtils;
import org.example.core.utils.R;
import org.example.warehouse.bo.WareSkuBO;
import org.example.warehouse.dto.WareSkuDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import org.example.warehouse.entity.WareSkuEntity;
import org.example.warehouse.service.WareSkuService;

import java.util.List;


/**
 * @author xiaojie_cc
 * @version 1.0
 */
@RestController
@RequestMapping("/wms/backend/wareSku")
public class WareSkuController {
    @Autowired
    private WareSkuService wareSkuService;

    /**
     * 修改
     */
    @PostMapping("/list")
    public R<?> list(@RequestBody WareSkuDto dto){
        PageUtils pageUtils = wareSkuService.list(dto);
        return R.ok(pageUtils);
    }

    /**
     * 判断是否有库存
     */
    @GetMapping("/stock/{skuId}")
    public R<Boolean> isStock(@PathVariable("skuId") Long skuId){
        Boolean isStock = wareSkuService.queryStockBySkuId(skuId);
        return R.ok(isStock);
    }

    /**
     * 保存商品库存
     */
    @PostMapping("/saves")
    public R<?> saves(@RequestBody List<WareSkuEntity> wareSku){
        return wareSkuService.addWareSkus(wareSku)>0? R.ok():R.error();
    }

    /**
     * 修改
     */
    @PutMapping("/update")
    public R<?> update(@RequestBody WareSkuBO bo){
        return wareSkuService.update(bo)>0? R.ok():R.error();
    }

    /**
     * 删除
     */
    @DeleteMapping("/delete")
    public R<?> delete(@RequestBody Long[] ids){

        return null;
    }

    /**
     * 根据skuIds查询库存
     */
    @PostMapping("/seckillSkuStock")
    public R<?> getSeckillSkuStock(@RequestBody List<Long> skuIds){
        return R.ok(wareSkuService.getSeckillSkuStock(skuIds));
    }

}
